widget-factory: show off needs-attention stack pages
authorMatthias Clasen <mclasen@redhat.com>
Fri, 4 Jul 2014 19:46:47 +0000 (15:46 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 4 Jul 2014 19:46:47 +0000 (15:46 -0400)
When clicking 'Action' in the 'Act' dialog, we mark the third
page as needing attention a second later. This unveils that we
currently don't have any theming for needs-attention in Adwaita.

demos/widget-factory/widget-factory.c
demos/widget-factory/widget-factory.ui

index 9ba633f7e7349b0621193155b7a6f3c872bd599c..041b0b2401d384de94f76ff038b9abf0f87bc2de 100644 (file)
@@ -75,7 +75,7 @@ activate_about (GSimpleAction *action,
   };
   gchar *version;
 
-  version = g_strdup_printf ("%s,\nRunning against GTK+ %d.%d.%d",
+  version = g_strdup_printf ("%s\nRunning against GTK+ %d.%d.%d",
                              PACKAGE_VERSION,
                              gtk_get_major_version (),
                              gtk_get_minor_version (),
@@ -283,12 +283,32 @@ close_dialog (GtkWidget *dialog)
   gtk_widget_hide (dialog);
 }
 
+static gboolean
+demand_attention (gpointer page)
+{
+  GtkWidget *stack;
+
+  stack = gtk_widget_get_parent (page);
+  gtk_container_child_set (GTK_CONTAINER (stack), page,
+                           "needs-attention", TRUE,
+                           NULL);
+
+  return G_SOURCE_REMOVE;
+}
+
+static void
+action_dialog_button_clicked (GtkButton *button, GtkWidget *page)
+{
+  g_timeout_add (1000, demand_attention, page);
+}
+
 static void
 activate (GApplication *app)
 {
   GtkBuilder *builder;
   GtkWindow *window;
   GtkWidget *widget;
+  GtkWidget *page;
   GtkWidget *dialog;
   GtkAdjustment *adj;
   static GActionEntry win_entries[] = {
@@ -356,6 +376,10 @@ activate (GApplication *app)
   widget = (GtkWidget *)gtk_builder_get_object (builder, "action_dialog_button");
   g_signal_connect (widget, "clicked", G_CALLBACK (show_dialog), dialog);
 
+  widget = (GtkWidget *)gtk_builder_get_object (builder, "act_action_dialog");
+  page = (GtkWidget *)gtk_builder_get_object (builder, "page3_content");
+  g_signal_connect (widget, "clicked", G_CALLBACK (action_dialog_button_clicked), page);
+
   dialog = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog");
   g_signal_connect (dialog, "response", G_CALLBACK (close_dialog), NULL);
   widget = (GtkWidget *)gtk_builder_get_object (builder, "preference_dialog_button");
index b0f19177b8798a458617013dd7020eba830c0313..13a3d43b84b83d035aed8b110c4879fbdcbdf458 100644 (file)
@@ -2727,7 +2727,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. </property>
               </packing>
             </child>
             <child>
-              <object class="GtkSpinner">
+              <object class="GtkSpinner" id="page3_content">
                 <property name="visible">True</property>
                 <property name="active">True</property>
                 <property name="expand">True</property>